Java源码示例:org.hl7.fhir.dstu3.model.ListResource

示例1
protected SectionComponent processProceduresSection(Element section) throws Exception {
	ListResource list = new ListResource();
	for (Element entry : cda.getChildren(section, "entry")) {
		Element procedure = cda.getlastChild(entry);

		if (cda.hasTemplateId(procedure, "2.16.840.1.113883.10.20.22.4.14")) {
			processProcedure(list, procedure, ProcedureType.Procedure);
		} else if (cda.hasTemplateId(procedure, "2.16.840.1.113883.10.20.22.4.13")) {
			processProcedure(list, procedure, ProcedureType.Observation);
		} else if (cda.hasTemplateId(procedure, "2.16.840.1.113883.10.20.22.4.12")) {
			processProcedure(list, procedure, ProcedureType.Act);
		} else
			throw new Exception("Unhandled Section template ids: "+cda.showTemplateIds(procedure));
	}

	// todo: text
	SectionComponent s = new Composition.SectionComponent();
	s.setCode(convert.makeCodeableConceptFromCD(cda.getChild(section,  "code")));
	// todo: check subject
	s.addEntry(Factory.makeReference(addReference(list, "Procedures", makeUUIDReference())));
	return s;

}
 
示例2
protected SectionComponent processAdverseReactionsSection(Element section) throws Exception {
	ListResource list = new ListResource();
	for (Element entry : cda.getChildren(section, "entry")) {
		Element concern = cda.getChild(entry, "act");
		if (cda.hasTemplateId(concern, "2.16.840.1.113883.10.20.22.4.30")) {
			processAllergyProblemAct(list, concern);
		} else
			throw new Exception("Unhandled Section template ids: "+cda.showTemplateIds(concern));
	}


	// todo: text
	SectionComponent s = new Composition.SectionComponent();
	s.setCode(convert.makeCodeableConceptFromCD(cda.getChild(section,  "code")));
	// todo: check subject
	s.addEntry(Factory.makeReference(addReference(list, "Allergies, Adverse Reactions, Alerts", makeUUIDReference())));
	return s;
}
 
示例3
protected SectionComponent processSocialHistorySection(Element section) throws Exception {
	ListResource list = new ListResource();
	for (Element entry : cda.getChildren(section, "entry")) {
		Element observation = cda.getlastChild(entry);

		if (cda.hasTemplateId(observation, "2.16.840.1.113883.10.20.22.4.38")) {
			processSocialObservation(list, observation, SocialHistoryType.SocialHistory);
		} else if (cda.hasTemplateId(observation, "2.16.840.1.113883.10.20.15.3.8")) {
			processSocialObservation(list, observation, SocialHistoryType.Pregnancy);
		} else if (cda.hasTemplateId(observation, "2.16.840.1.113883.10.20.22.4.78")) {
			processSocialObservation(list, observation, SocialHistoryType.SmokingStatus);
		} else if (cda.hasTemplateId(observation, "2.16.840.1.113883.10.20.22.4.85")) {
			processSocialObservation(list, observation, SocialHistoryType.TobaccoUse);
		} else
			throw new Exception("Unhandled Section template ids: "+cda.showTemplateIds(observation));
	}

	// todo: text
	SectionComponent s = new Composition.SectionComponent();
	s.setCode(convert.makeCodeableConceptFromCD(cda.getChild(section,  "code")));
	// todo: check subject
	s.addEntry(Factory.makeReference(addReference(list, "Procedures", makeUUIDReference())));
	return s;

}
 
示例4
protected SectionComponent processVitalSignsSection(Element section) throws Exception {
	ListResource list = new ListResource();
	for (Element entry : cda.getChildren(section, "entry")) {
		Element organizer = cda.getlastChild(entry);

		if (cda.hasTemplateId(organizer, "2.16.840.1.113883.10.20.22.4.26")) {
			processVitalSignsOrganizer(list, organizer);
		} else
			throw new Exception("Unhandled Section template ids: "+cda.showTemplateIds(organizer));
	}

	// todo: text
	SectionComponent s = new Composition.SectionComponent();
	s.setCode(convert.makeCodeableConceptFromCD(cda.getChild(section,  "code")));
	// todo: check subject
	s.addEntry(Factory.makeReference(addReference(list, "Vital Signs", makeUUIDReference())));
	return s;

}
 
示例5
@Update
public MethodOutcome updateList(HttpServletRequest theRequest, @ResourceParam ListResource list, @IdParam IdType theId, @ConditionalUrlParam String theConditional, RequestDetails theRequestDetails) {

	resourcePermissionProvider.checkPermission("update");
    MethodOutcome method = new MethodOutcome();
    method.setCreated(true);
    OperationOutcome opOutcome = new OperationOutcome();

    method.setOperationOutcome(opOutcome);

try {
    log.info(theId.getId());
    ListResource newList = listDao.create(ctx, list, theId, theConditional);
    method.setId(newList.getIdElement());
    method.setResource(newList);

} catch (Exception ex) {

    ProviderResponseLibrary.handleException(method,ex);
}


    return method;
}
 
示例6
@Create
public MethodOutcome createList(HttpServletRequest theRequest, @ResourceParam ListResource list) {

	resourcePermissionProvider.checkPermission("create");
    MethodOutcome method = new MethodOutcome();
    method.setCreated(true);
    OperationOutcome opOutcome = new OperationOutcome();

    method.setOperationOutcome(opOutcome);
    try {
        ListResource newList = listDao.create(ctx, list,null,null);
        method.setId(newList.getIdElement());
        method.setResource(newList);
    } catch (Exception ex) {

        ProviderResponseLibrary.handleException(method,ex);
    }

    return method;
}
 
示例7
private void addEvaluatedResourcesToParameters(Bundle contained, Parameters parameters) {
    Map<String, Resource> resourceMap = new HashMap<>();
    if (contained.hasEntry()) {
        for (Bundle.BundleEntryComponent entry : contained.getEntry()) {
            if (entry.hasResource() && !(entry.getResource() instanceof ListResource)) {
                if (!resourceMap.containsKey(entry.getResource().getIdElement().getValue())) {
                    parameters.addParameter(new Parameters.ParametersParameterComponent().setName("resource")
                            .setResource(entry.getResource()));

                    resourceMap.put(entry.getResource().getIdElement().getValue(), entry.getResource());

                    resolveReferences(entry.getResource(), parameters, resourceMap);
                }
            }
        }
    }
}
 
示例8
protected ListEntryComponent addItemToList(ListResource list, DomainResource ai)
		throws Exception {
	list.getContained().add(ai);
	String n = nextRef();
	ai.setId(n);
	ListEntryComponent item = new ListResource.ListEntryComponent();
	list.getEntry().add(item);
	item.setItem(Factory.makeReference("#"+n));
	return item;
}
 
示例9
@Read()
public ListResource getList(@IdParam IdType listId) {
	resourcePermissionProvider.checkPermission("read");
    ListResource form = listDao.read(ctx,listId);

    if ( form == null) {
        throw OperationOutcomeFactory.buildOperationOutcomeException(
                new ResourceNotFoundException("No List/ " + listId.getIdPart()),
                 OperationOutcome.IssueType.NOTFOUND);
    }

    return form;
}
 
示例10
@Search
public List<ListResource> searchQuestionnaire(HttpServletRequest theRequest,
                                                       @OptionalParam(name = ListResource.SP_IDENTIFIER) TokenParam identifier,
                                                       @OptionalParam(name= ListResource.SP_RES_ID) StringParam id,
                                                       @OptionalParam(name = ListResource.SP_PATIENT) ReferenceParam patient
) {
    return listDao.searchListResource(ctx, identifier,id,patient);
}
 
示例11
private void processAllergiesSection(CDAUtilities cda, Convert convert, Element section, Context context) throws Exception {
	scanSection("Allergies", section);
	ListResource list = new ListResource();
	list.setId(context.baseId+"-list-allergies");
	list.setUserData("profile", "http://hl7.org/fhir/StructureDefinition/list-daf-dafallergylist");
	list.setSubject(context.subjectRef);
	list.setCode(inspectCode(convert.makeCodeableConceptFromCD(cda.getChild(section, "code")), null));
	list.setTitle(cda.getChild(section, "title").getTextContent());
	list.setStatus(ListStatus.CURRENT);
	list.setDateElement(context.now);
	list.setSource(context.authorRef);
	list.setMode(ListMode.SNAPSHOT);
	buildNarrative(list, cda.getChild(section, "text"));

	int i = 0;
	for (Element c : cda.getChildren(section, "entry")) {
		Element apa = cda.getChild(c, "act"); // allergy problem act
		AllergyIntolerance ai = new AllergyIntolerance();
		ai.setId(context.baseId+"-allergy-"+Integer.toString(i));
		ai.setUserData("profile", "http://hl7.org/fhir/StructureDefinition/allergyintolerance-daf-dafallergyintolerance");
		i++;
		ai.setPatient(context.subjectRef);

		ai.setAssertedDateElement(convert.makeDateTimeFromTS(cda.getChild(cda.getChild(apa, "effectiveTime"), "low")));
		boolean found = false;
		for (Element e : cda.getChildren(apa, "id")) {
			Identifier id = convert.makeIdentifierFromII(e);
			ai.getIdentifier().add(id);
		}
		if (!found) {
			list.addEntry().setItem(new Reference().setReference("AllergyIntolerance/"+ai.getId()));

			Element ao = cda.getChild(cda.getChild(apa, "entryRelationship"), "observation"); // allergy observation
			if (!cda.getChild(ao, "value").getAttribute("code").equals("419511003"))
				throw new Error("unexpected code");
			// nothing....

			// no allergy status observation
			List<Element> reactions = cda.getChildren(ao, "entryRelationship");
			Element pe = cda.getChild(cda.getChild(cda.getChild(ao, "participant"), "participantRole"), "playingEntity");
			Element pec = cda.getChild(pe, "code");
			if (pec == null || !Utilities.noString(pec.getAttribute("nullFlavor"))) {
				String n = cda.getChild(pe, "name").getTextContent();
				//				if (n.contains("No Known Drug Allergies") && reactions.isEmpty())
				//					ai.setSubstance(new CodeableConcept().setText(n)); // todo: what do with this?
				//				else
				ai.setCode(new CodeableConcept().setText(n));
			} else
				ai.setCode(inspectCode(convert.makeCodeableConceptFromCD(pec), null));
			recordAllergyCode(ai.getCode());
			if (!reactions.isEmpty()) {
				AllergyIntoleranceReactionComponent aie = ai.addReaction();
				for (Element er : reactions) {
					Element ro = cda.getChild(er, "observation");
					aie.addManifestation(inspectCode(convert.makeCodeableConceptFromCD(cda.getChild(ro, "value")), null));
				}
			}

			saveResource(ai);
		}
	}
	saveResource(list);
}
 
示例12
private void processVitalSignsSection(CDAUtilities cda, Convert convert, Element section, Context context) throws Exception {
	scanSection("Vital Signs", section);
	ListResource list = new ListResource();
	list.setId(context.baseId+"-list-vitalsigns");
	//. list.setUserData("profile", "http://hl7.org/fhir/StructureDefinition/list-daf-dafproblemlist"); no list
	list.setSubject(context.subjectRef);
	list.setCode(inspectCode(convert.makeCodeableConceptFromCD(cda.getChild(section, "code")), null));
	list.setTitle(cda.getChild(section, "title").getTextContent());
	list.setStatus(ListStatus.CURRENT);
	list.setMode(ListMode.SNAPSHOT);
	list.setDateElement(context.now);
	list.setSource(context.authorRef);
	buildNarrative(list, cda.getChild(section, "text"));

	int i = 0;
	for (Element c : cda.getChildren(section, "entry")) {
		Element org = cda.getChild(c, "organizer"); // problem concern act
		for (Element oc : cda.getChildren(org, "component")) {
			Element o = cda.getChild(oc, "observation"); // problem concern act
			Observation obs = new Observation();
			obs.setId(context.baseId+"-vitals-"+Integer.toString(i));
			obs.setUserData("profile", "http://hl7.org/fhir/StructureDefinition/observation-daf-vitalsigns-dafvitalsigns");
			i++;
			obs.setSubject(context.subjectRef);
			obs.setContext(new Reference().setReference("Encounter/"+context.encounter.getId()));
			obs.setCode(inspectCode(convert.makeCodeableConceptFromCD(cda.getChild(o, "code")), null));

			boolean found = false;
			for (Element e : cda.getChildren(o, "id")) {
				Identifier id = convert.makeIdentifierFromII(e);
				obs.getIdentifier().add(id);
			}

			if (!found) {
				list.addEntry().setItem(new Reference().setReference("Observation/"+obs.getId()));
				obs.setStatus(ObservationStatus.FINAL);
				obs.setEffective(convert.makeDateTimeFromTS(cda.getChild(o, "effectiveTime")));
				String v = cda.getChild(o, "value").getAttribute("value");
				if (!Utilities.isDecimal(v, true)) {
					obs.setDataAbsentReason(inspectCode(new CodeableConcept().setText(v), null));
				} else
					obs.setValue(convert.makeQuantityFromPQ(cda.getChild(o, "value")));
				saveResource(obs, "-vs");
			}
		}
	}
	saveResource(list, "-vs");
}
 
示例13
protected String processVitalSignsObservation(Element comp, ListResource list) throws Exception {
	Element observation = cda.getChild(comp, "observation");
	cda.checkTemplateId(observation, "2.16.840.1.113883.10.20.22.4.27");
	checkNoNegationOrNullFlavor(observation, "Vital Signs Observation");
	checkNoSubject(observation, "Vital Signs Observation");

	Observation obs = new Observation();

	//	SHALL contain at least one [1..*] id (CONF:7300).
	for (Element e : cda.getChildren(observation, "id"))
		obs.getIdentifier().add(convert.makeIdentifierFromII(e));

	// SHALL contain exactly one [1..1] code, which SHOULD be selected from ValueSet Vital Sign Result Value Set 2.16.840.1.113883.3.88.12.80.62 DYNAMIC (CONF:7301).
	obs.setCode(convert.makeCodeableConceptFromCD(cda.getChild(observation, "code"))); // all loinc codes

	// SHOULD contain zero or one [0..1] text (CONF:7302).
	// The text, if present, SHOULD contain zero or one [0..1] reference (CONF:15943).
	// The reference, if present, SHOULD contain zero or one [0..1] @value (CONF:15944).
	// This reference/@value SHALL begin with a '#' and SHALL point to its corresponding narrative (using the approach defined in CDA Release 2, section 4.3.5.1) (CONF:15945).
	// todo: put this in narrative if it exists?


	// SHALL contain exactly one [1..1] statusCode (CONF:7303).	This statusCode SHALL contain exactly one [1..1] @code="completed" Completed (CodeSystem: ActStatus 2.16.840.1.113883.5.14 STATIC) (CONF:19119).
	// ignore

	// SHALL contain exactly one [1..1] effectiveTime (CONF:7304).
	obs.setEffective(convert.makeMatchingTypeFromIVL(cda.getChild(observation, "effectiveTime")));

	//	SHALL contain exactly one [1..1] value with @xsi:type="PQ" (CONF:7305).
	obs.setValue(convert.makeQuantityFromPQ(cda.getChild(observation, "value")));

	// MAY contain zero or one [0..1] interpretationCode (CONF:7307).
	obs.setInterpretation(convert.makeCodeableConceptFromCD(cda.getChild(observation, "interpretationCode")));

	//	MAY contain zero or one [0..1] methodCode (CONF:7308).
	obs.setMethod(convert.makeCodeableConceptFromCD(cda.getChild(observation, "methodCode")));

	// MAY contain zero or one [0..1] targetSiteCode (CONF:7309).
	obs.setBodySite(convert.makeCodeableConceptFromCD(cda.getChild(observation, "targetSiteCode")));

	// MAY contain zero or one [0..1] author (CONF:7310).
	if (cda.getChild(observation, "author") != null)
		obs.getPerformer().add(makeReferenceToPractitionerForAssignedEntity(cda.getChild(observation, "author"), composition));

	// make a contained practitioner
	String n = nextRef();
	obs.setId(n);
	list.getContained().add(obs);
	return n;
}
 
示例14
public ListResource.ListStatus getStatus() {
    return status;
}
 
示例15
public void setStatus(ListResource.ListStatus status) {
    this.status = status;
}
 
示例16
public ListResource.ListMode getMode() {
    return mode;
}
 
示例17
public void setMode(ListResource.ListMode mode) {
    this.mode = mode;
}
 
示例18
public ListResource.ListMode getMode() {
    return mode;
}
 
示例19
public void setMode(ListResource.ListMode mode) {
    this.mode = mode;
}
 
示例20
List<ListEntity> searchListEntity(FhirContext ctx,
                                                                    @OptionalParam(name = ListResource.SP_IDENTIFIER) TokenParam identifier,
                                                                    @OptionalParam(name = ListResource.SP_RES_ID) StringParam id,
                                                                    @OptionalParam(name = ListResource.SP_PATIENT) ReferenceParam patient
);
 
示例21
@Override
public Class<? extends IBaseResource> getResourceType() {
    return ListResource.class;
}
 
示例22
List<ListResource> searchListResource(FhirContext ctx,

                                                            @OptionalParam(name = ListResource.SP_IDENTIFIER) TokenParam identifier,
                                                            @OptionalParam(name = ListResource.SP_RES_ID) StringParam id,
                                                            @OptionalParam(name = ListResource.SP_PATIENT) ReferenceParam patient

    );
 
示例23
ListResource read(FhirContext ctx, IdType theId); 
示例24
ListResource create(FhirContext ctx, ListResource questionnaire, @IdParam IdType theId, @ConditionalUrlParam String theConditional) throws OperationOutcomeException;