Search in sources :

Example 56 with Encounter

use of org.mitre.synthea.world.concepts.HealthRecord.Encounter in project synthea by synthetichealth.

the class StateTest method testMultiObservation.

@Test
public void testMultiObservation() throws Exception {
    // Birth makes the blood pump :-)
    LifecycleModule.birth(person, (long) person.attributes.get(Person.BIRTHDATE));
    Module module = TestHelper.getFixture("observation_groups.json");
    State condition = module.getState("Record_BP");
    assertTrue(condition.process(person, time));
    // for a MultiObservation, we expect only the MultiObs to be added to the record,
    // not the child observations, which get added as components of the parent observation
    Encounter e = person.record.encounters.get(0);
    assertEquals(1, e.observations.size());
    HealthRecord.Observation o = e.observations.get(0);
    assertEquals("55284-4", o.codes.get(0).code);
    assertEquals(2, o.observations.size());
    // diastolic
    assertEquals("8462-4", o.observations.get(0).codes.get(0).code);
    // systolic
    assertEquals("8480-6", o.observations.get(1).codes.get(0).code);
}
Also used : HealthRecord(org.mitre.synthea.world.concepts.HealthRecord) Encounter(org.mitre.synthea.world.concepts.HealthRecord.Encounter) QualityOfLifeModule(org.mitre.synthea.modules.QualityOfLifeModule) CardiovascularDiseaseModule(org.mitre.synthea.modules.CardiovascularDiseaseModule) EncounterModule(org.mitre.synthea.modules.EncounterModule) WeightLossModule(org.mitre.synthea.modules.WeightLossModule) LifecycleModule(org.mitre.synthea.modules.LifecycleModule) DeathModule(org.mitre.synthea.modules.DeathModule) Test(org.junit.Test)

Example 57 with Encounter

use of org.mitre.synthea.world.concepts.HealthRecord.Encounter in project synthea by synthetichealth.

the class StateTest method testDeviceEndByAttribute.

@Test
public void testDeviceEndByAttribute() throws Exception {
    Module module = TestHelper.getFixture("artificial_heart_device.json");
    State encounterState = module.getState("Encounter");
    assertTrue(encounterState.process(person, time));
    State deviceState = module.getState("Artificial_Heart");
    assertTrue(deviceState.process(person, time));
    State deviceEndState = module.getState("Remove_Device_By_Attribute");
    assertTrue(deviceEndState.process(person, time));
    Encounter encounter = person.getCurrentEncounter(module);
    List<HealthRecord.Device> devices = encounter.devices;
    HealthRecord.Device device = devices.get(0);
    assertEquals(time, device.stop);
}
Also used : HealthRecord(org.mitre.synthea.world.concepts.HealthRecord) Encounter(org.mitre.synthea.world.concepts.HealthRecord.Encounter) QualityOfLifeModule(org.mitre.synthea.modules.QualityOfLifeModule) CardiovascularDiseaseModule(org.mitre.synthea.modules.CardiovascularDiseaseModule) EncounterModule(org.mitre.synthea.modules.EncounterModule) WeightLossModule(org.mitre.synthea.modules.WeightLossModule) LifecycleModule(org.mitre.synthea.modules.LifecycleModule) DeathModule(org.mitre.synthea.modules.DeathModule) Test(org.junit.Test)

Example 58 with Encounter

use of org.mitre.synthea.world.concepts.HealthRecord.Encounter in project synthea by synthetichealth.

the class StateTest method testVaccine.

@Test
public void testVaccine() throws Exception {
    Module module = TestHelper.getFixture("vaccine.json");
    State encounterState = module.getState("Encounter");
    assertTrue(encounterState.process(person, time));
    State supplyListState = module.getState("Vaccine");
    assertTrue(supplyListState.process(person, time));
    Encounter encounter = person.getCurrentEncounter(module);
    List<HealthRecord.Immunization> vaccines = encounter.immunizations;
    assertNotNull(vaccines);
    assertEquals(1, vaccines.size());
    String[] expectedCodes = { "123" };
    String[] expectedDisplays = { "CVX Vaccine Code" };
    for (int i = 0; i < vaccines.size(); i++) {
        HealthRecord.Immunization vaccine = vaccines.get(i);
        Code code = vaccine.codes.get(0);
        assertEquals(expectedCodes[i], code.code);
        assertEquals(expectedDisplays[i], code.display);
    }
}
Also used : HealthRecord(org.mitre.synthea.world.concepts.HealthRecord) Encounter(org.mitre.synthea.world.concepts.HealthRecord.Encounter) QualityOfLifeModule(org.mitre.synthea.modules.QualityOfLifeModule) CardiovascularDiseaseModule(org.mitre.synthea.modules.CardiovascularDiseaseModule) EncounterModule(org.mitre.synthea.modules.EncounterModule) WeightLossModule(org.mitre.synthea.modules.WeightLossModule) LifecycleModule(org.mitre.synthea.modules.LifecycleModule) DeathModule(org.mitre.synthea.modules.DeathModule) Code(org.mitre.synthea.world.concepts.HealthRecord.Code) Test(org.junit.Test)

Example 59 with Encounter

use of org.mitre.synthea.world.concepts.HealthRecord.Encounter in project synthea by synthetichealth.

the class CodeResolveAndExportTest method verifyEncounterCodeDstu2.

private void verifyEncounterCodeDstu2() throws IOException {
    InputStream inputStream = new FileInputStream(dstu2OutputPath.toFile().getAbsolutePath());
    ca.uhn.fhir.model.dstu2.resource.Bundle bundle = (ca.uhn.fhir.model.dstu2.resource.Bundle) FhirDstu2.getContext().newJsonParser().parseResource(inputStream);
    // Find encounter reason code.
    Optional<Entry> maybeEncounterEntry = bundle.getEntry().stream().filter(entry -> entry.getResource().getResourceName().equals(org.hl7.fhir.dstu2.model.ResourceType.Encounter.name())).findFirst();
    assertTrue(maybeEncounterEntry.isPresent());
    ca.uhn.fhir.model.dstu2.resource.Encounter encounterResource = (ca.uhn.fhir.model.dstu2.resource.Encounter) maybeEncounterEntry.get().getResource();
    assertEquals(encounterResource.getReason().size(), 1);
    CodeableConceptDt encounterReason = encounterResource.getReason().get(0);
    assertEquals(encounterReason.getCoding().size(), 1);
    CodingDt reasonCoding = encounterReason.getCoding().get(0);
    // Check encounter reason code.
    assertEquals(SNOMED_URI, reasonCoding.getSystem());
    assertEquals(EXPECTED_REASON_CODE, reasonCoding.getCode());
    assertEquals(EXPECTED_REASON_DISPLAY, reasonCoding.getDisplay());
    Optional<Entry> maybeObservationEntry = bundle.getEntry().stream().filter(entry -> entry.getResource().getResourceName().equals(org.hl7.fhir.dstu2.model.ResourceType.Observation.name())).findFirst();
    assertTrue(maybeObservationEntry.isPresent());
    // Find observation type code.
    ca.uhn.fhir.model.dstu2.resource.Observation observationResource = (ca.uhn.fhir.model.dstu2.resource.Observation) maybeObservationEntry.get().getResource();
    CodeableConceptDt observationType = observationResource.getCode();
    assertNotNull(observationType);
    assertEquals(observationType.getCoding().size(), 1);
    CodingDt observationTypeCoding = observationType.getCoding().get(0);
    // Check observation type code.
    assertEquals(LOINC_URI, observationTypeCoding.getSystem());
    assertEquals(OBSERVATION_CODE, observationTypeCoding.getCode());
    assertEquals(OBSERVATION_DISPLAY, observationTypeCoding.getDisplay());
    // Find observation value code.
    CodeableConceptDt observationValue = (CodeableConceptDt) observationResource.getValue();
    assertNotNull(observationValue);
    assertEquals(observationValue.getCoding().size(), 1);
    CodingDt observationValueCoding = observationValue.getCoding().get(0);
    // Check observation value code.
    assertEquals(LOINC_URI, observationValueCoding.getSystem());
    assertEquals(EXPECTED_VALUE_CODE, observationValueCoding.getCode());
    assertEquals(EXPECTED_VALUE_DISPLAY, observationValueCoding.getDisplay());
    inputStream.close();
}
Also used : TestHelper.years(org.mitre.synthea.TestHelper.years) Arrays(java.util.Arrays) XPathExpressionException(javax.xml.xpath.XPathExpressionException) Location(org.mitre.synthea.world.geography.Location) Bundle(org.hl7.fhir.dstu3.model.Bundle) BundleEntryComponent(org.hl7.fhir.dstu3.model.Bundle.BundleEntryComponent) Coding(org.hl7.fhir.dstu3.model.Coding) CodeableConcept(org.hl7.fhir.dstu3.model.CodeableConcept) Person(org.mitre.synthea.world.agents.Person) Document(org.w3c.dom.Document) After(org.junit.After) Path(java.nio.file.Path) Encounter(org.mitre.synthea.world.concepts.HealthRecord.Encounter) RestTemplate(org.springframework.web.client.RestTemplate) RandomCodeGenerator(org.mitre.synthea.helpers.RandomCodeGenerator) List(java.util.List) SAXException(org.xml.sax.SAXException) LOINC_URI(org.mitre.synthea.TestHelper.LOINC_URI) Optional(java.util.Optional) TestHelper(org.mitre.synthea.TestHelper) DocumentBuilderFactory(javax.xml.parsers.DocumentBuilderFactory) EncounterType(org.mitre.synthea.world.concepts.HealthRecord.EncounterType) XPath(javax.xml.xpath.XPath) XPathConstants(javax.xml.xpath.XPathConstants) SimpleDateFormat(java.text.SimpleDateFormat) TestHelper.isHttpRecordingEnabled(org.mitre.synthea.TestHelper.isHttpRecordingEnabled) XPathExpression(javax.xml.xpath.XPathExpression) Generator(org.mitre.synthea.engine.Generator) CodingDt(ca.uhn.fhir.model.dstu2.composite.CodingDt) WireMock(com.github.tomakehurst.wiremock.client.WireMock) CodeableConceptDt(ca.uhn.fhir.model.dstu2.composite.CodeableConceptDt) WireMockRule(com.github.tomakehurst.wiremock.junit.WireMockRule) ResourceType(org.hl7.fhir.dstu3.model.ResourceType) Node(org.w3c.dom.Node) Code(org.mitre.synthea.world.concepts.HealthRecord.Code) LOINC_OID(org.mitre.synthea.TestHelper.LOINC_OID) Before(org.junit.Before) TestHelper.wiremockOptions(org.mitre.synthea.TestHelper.wiremockOptions) Config(org.mitre.synthea.helpers.Config) NodeList(org.w3c.dom.NodeList) Assert.assertNotNull(org.junit.Assert.assertNotNull) Assert.assertTrue(org.junit.Assert.assertTrue) IOException(java.io.IOException) Test(org.junit.Test) FileInputStream(java.io.FileInputStream) Payer(org.mitre.synthea.world.agents.Payer) File(java.io.File) Provider(org.mitre.synthea.world.agents.Provider) SNOMED_URI(org.mitre.synthea.TestHelper.SNOMED_URI) XPathFactory(javax.xml.xpath.XPathFactory) Rule(org.junit.Rule) Entry(ca.uhn.fhir.model.dstu2.resource.Bundle.Entry) ParserConfigurationException(javax.xml.parsers.ParserConfigurationException) DocumentBuilder(javax.xml.parsers.DocumentBuilder) ProviderTest(org.mitre.synthea.world.agents.ProviderTest) Assert.assertEquals(org.junit.Assert.assertEquals) TestHelper.getTxRecordingSource(org.mitre.synthea.TestHelper.getTxRecordingSource) InputStream(java.io.InputStream) CodeableConceptDt(ca.uhn.fhir.model.dstu2.composite.CodeableConceptDt) FileInputStream(java.io.FileInputStream) InputStream(java.io.InputStream) Bundle(org.hl7.fhir.dstu3.model.Bundle) FileInputStream(java.io.FileInputStream) Entry(ca.uhn.fhir.model.dstu2.resource.Bundle.Entry) CodingDt(ca.uhn.fhir.model.dstu2.composite.CodingDt) Encounter(org.mitre.synthea.world.concepts.HealthRecord.Encounter)

Example 60 with Encounter

use of org.mitre.synthea.world.concepts.HealthRecord.Encounter in project synthea by synthetichealth.

the class ExporterTest method testExportFilterShouldKeepOldActiveConditions.

@Test
public void testExportFilterShouldKeepOldActiveConditions() {
    record.encounterStart(time - years(10), EncounterType.WELLNESS);
    record.conditionStart(time - years(10), "fakitis");
    record.conditionEnd(time - years(8), "fakitis");
    record.encounterStart(time - years(10), EncounterType.WELLNESS);
    record.conditionStart(time - years(10), "fakosis");
    Person filtered = Exporter.filterForExport(patient, yearsToKeep, endTime);
    Encounter encounter = filtered.record.currentEncounter(time);
    assertEquals(1, encounter.conditions.size());
    assertEquals("fakosis", encounter.conditions.get(0).type);
    assertEquals(time - years(10), encounter.conditions.get(0).start);
}
Also used : Encounter(org.mitre.synthea.world.concepts.HealthRecord.Encounter) Person(org.mitre.synthea.world.agents.Person) Test(org.junit.Test) ProviderTest(org.mitre.synthea.world.agents.ProviderTest)

Aggregations

Encounter (org.mitre.synthea.world.concepts.HealthRecord.Encounter)99 Test (org.junit.Test)54 Code (org.mitre.synthea.world.concepts.HealthRecord.Code)51 HealthRecord (org.mitre.synthea.world.concepts.HealthRecord)29 Person (org.mitre.synthea.world.agents.Person)28 ProviderTest (org.mitre.synthea.world.agents.ProviderTest)22 DeathModule (org.mitre.synthea.modules.DeathModule)17 QualityOfLifeModule (org.mitre.synthea.modules.QualityOfLifeModule)17 ArrayList (java.util.ArrayList)16 CardiovascularDiseaseModule (org.mitre.synthea.modules.CardiovascularDiseaseModule)16 EncounterModule (org.mitre.synthea.modules.EncounterModule)16 LifecycleModule (org.mitre.synthea.modules.LifecycleModule)16 WeightLossModule (org.mitre.synthea.modules.WeightLossModule)16 Provider (org.mitre.synthea.world.agents.Provider)16 Medication (org.mitre.synthea.world.concepts.HealthRecord.Medication)16 Observation (org.mitre.synthea.world.concepts.HealthRecord.Observation)16 Procedure (org.mitre.synthea.world.concepts.HealthRecord.Procedure)16 Report (org.mitre.synthea.world.concepts.HealthRecord.Report)14 Date (java.util.Date)13 Claim (org.mitre.synthea.world.concepts.Claim)12