Summary Table
Categories |
Total Count |
PII |
0 |
URL |
0 |
DNS |
0 |
EKL |
0 |
IP |
0 |
PORT |
0 |
VsID |
0 |
CF |
0 |
AI |
0 |
VPD |
0 |
PL |
0 |
Other |
0 |
File Content
package gov.va.med.pbm.ampl.fhir.unmarshall.dstu2.unbundle;
import java.time.OffsetDateTime;
import java.util.List;
import ca.uhn.fhir.model.api.ExtensionDt;
import ca.uhn.fhir.model.dstu2.composite.CodeableConceptDt;
import ca.uhn.fhir.model.dstu2.composite.CodingDt;
import ca.uhn.fhir.model.dstu2.composite.HumanNameDt;
import ca.uhn.fhir.model.primitive.DateTimeDt;
import gov.va.med.pbm.ampl.model.Facility;
import gov.va.med.pbm.ampl.model.patientdemographics.Person;
import gov.va.med.pbm.ampl.utility.DateUtility;
/**
* The UnbundleUndeclaredExtension class marshals undeclared resource extensions.
*
* @author Ian Meinert
*
*/
public class UnbundleUndeclaredExtension {
private List<ExtensionDt> resourceExtensions;
/**
* Overloaded constructor accepting a collection of {@link ExtensionDt}.
*
* @param resourceExtensions {@link ExtensionDt}
*/
public UnbundleUndeclaredExtension(List<ExtensionDt> resourceExtensions) {
this.resourceExtensions = resourceExtensions;
}
/**
* This method builds a {@link Facility} from a given list of {@link ExtensionDt}.
*
* @param url the url
*
* @return {@link Facility}
*/
public Facility getFacilityFromCodingDt(String url) {
Facility facility = new Facility();
for (ExtensionDt resourceExtension : resourceExtensions) {
// "valueCoding" : Coding
// "valueCodeableConcept" : CodeableConcept
if (resourceExtension.getUrlAsString().equalsIgnoreCase(url)) {
CodingDt value = (CodingDt) resourceExtension.getValue();
String code = value.getCode();
String display = value.getDisplayElement().getValueAsString();
facility.setStationNumber(code);
facility.setSiteName(display);
}
}
return facility;
}
/**
* This method builds a {@link Facility} from a list of {@link ExtensionDt} accessed by a given url.
*
* @param url the url
*
* @return {@link Facility}
*/
public Facility getFacilityFromCodeableConceptDt(String url) {
Facility facility = new Facility();
for (ExtensionDt resourceExtension : resourceExtensions) {
// "valueCoding" : Coding
// "valueCodeableConcept" : CodeableConcept
if (resourceExtension.getUrlAsString().equalsIgnoreCase(url)) {
CodeableConceptDt concept = (CodeableConceptDt) resourceExtension.getValue();
CodingDt value = concept.getCodingFirstRep();
String code = value.getCode();
String display = value.getDisplayElement().getValueAsString();
facility.setStationNumber(code);
facility.setSiteName(display);
}
}
return facility;
}
/**
* This method builds a {@link Person} from a list of {@link ExtensionDt} accessed by a given url.
*
* @param url the url
*
* @return {@link Person}
*/
public Person getPersonFromHumanName(String url) {
Person person = new Person();
// "valueHumanName" : HumanName
for (ExtensionDt resourceExtension : resourceExtensions) {
if (resourceExtension.getUrlAsString().equalsIgnoreCase(url)) {
HumanNameDt value = (HumanNameDt) resourceExtension.getValue();
person.setName(value.getNameAsSingleString());
}
}
return person;
}
/**
* This method builds a String from a list of {@link ExtensionDt} accessed by a given url.
*
* @param url the URL
*
* @return String
*/
public String getCodingDisplayValue(String url) {
String value = new String();
for (ExtensionDt resourceExtension : resourceExtensions) {
if (resourceExtension.getUrlAsString().equalsIgnoreCase(url)) {
value = ((CodeableConceptDt) resourceExtension.getValue()).getCoding().get(0).getDisplay();
}
}
return value;
}
/**
* This method builds a OffsetDateTime from a list of {@link ExtensionDt} accessed by a given url.
*
* @param url the URL
*
* @return OffsetDateTime
*/
public OffsetDateTime getDateTimeValue(String url) {
OffsetDateTime value = null;
for (ExtensionDt resourceExtension : resourceExtensions) {
if (resourceExtension.getUrlAsString().equalsIgnoreCase(url)) {
value = DateUtility.offsetDateTimeValueOf(((DateTimeDt) resourceExtension.getValue()).getValueAsString());
}
}
return value;
}
}