use of org.hl7.fhir.r4.model.ExplanationOfBenefit.CareTeamComponent in project beneficiary-fhir-data by CMSgov.
the class TransformerUtils method addCareTeamPractitioner.
/**
* Ensures that the specified {@link ExplanationOfBenefit} has the specified {@link
* CareTeamComponent}, and links the specified {@link ItemComponent} to that {@link
* CareTeamComponent} (via {@link ItemComponent#addCareTeamLinkId(int)}).
*
* @param eob the {@link ExplanationOfBenefit} that the {@link CareTeamComponent} should be part
* of
* @param eobItem the {@link ItemComponent} that should be linked to the {@link CareTeamComponent}
* @param practitionerIdSystem the {@link Identifier#getSystem()} of the practitioner to reference
* in {@link CareTeamComponent#getProvider()}
* @param practitionerIdValue the {@link Identifier#getValue()} of the practitioner to reference
* in {@link CareTeamComponent#getProvider()}
* @param careTeamRole the {@link ClaimCareteamrole} to use for the {@link
* CareTeamComponent#getRole()}
* @return the {@link CareTeamComponent} that was created/linked
*/
static CareTeamComponent addCareTeamPractitioner(ExplanationOfBenefit eob, ItemComponent eobItem, String practitionerIdSystem, String practitionerIdValue, ClaimCareteamrole careTeamRole) {
// Try to find a matching pre-existing entry.
CareTeamComponent careTeamEntry = eob.getCareTeam().stream().filter(ctc -> ctc.getProvider().hasIdentifier()).filter(ctc -> practitionerIdSystem.equals(ctc.getProvider().getIdentifier().getSystem()) && practitionerIdValue.equals(ctc.getProvider().getIdentifier().getValue())).filter(ctc -> ctc.hasRole()).filter(ctc -> careTeamRole.toCode().equals(ctc.getRole().getCodingFirstRep().getCode()) && careTeamRole.getSystem().equals(ctc.getRole().getCodingFirstRep().getSystem())).findAny().orElse(null);
// If no match was found, add one to the EOB.
if (careTeamEntry == null) {
careTeamEntry = eob.addCareTeam();
careTeamEntry.setSequence(eob.getCareTeam().size() + 1);
careTeamEntry.setProvider(createIdentifierReference(practitionerIdSystem, practitionerIdValue));
CodeableConcept careTeamRoleConcept = createCodeableConcept(ClaimCareteamrole.OTHER.getSystem(), careTeamRole.toCode());
careTeamRoleConcept.getCodingFirstRep().setDisplay(careTeamRole.getDisplay());
careTeamEntry.setRole(careTeamRoleConcept);
}
// care team entry is at eob level so no need to create item link id
if (eobItem == null) {
return careTeamEntry;
}
// Link the EOB.item to the care team entry (if it isn't already).
final int careTeamEntrySequence = careTeamEntry.getSequence();
if (eobItem.getCareTeamLinkId().stream().noneMatch(id -> id.getValue() == careTeamEntrySequence)) {
eobItem.addCareTeamLinkId(careTeamEntrySequence);
}
return careTeamEntry;
}
use of org.hl7.fhir.r4.model.ExplanationOfBenefit.CareTeamComponent in project beneficiary-fhir-data by CMSgov.
the class OutpatientClaimTransformerV2Test method shouldHaveCareTeamMembers.
/**
* Testing all of these in one test, just because there isn't a distinct identifier really for
* each
*/
@Test
public void shouldHaveCareTeamMembers() {
// First member
CareTeamComponent member1 = TransformerTestUtilsV2.findCareTeamBySequence(1, eob.getCareTeam());
CareTeamComponent compare1 = TransformerTestUtilsV2.createNpiCareTeamMember(1, "2222222222", "http://hl7.org/fhir/us/carin-bb/CodeSystem/C4BBClaimCareTeamRole", "attending", "Attending");
assertTrue(compare1.equalsDeep(member1));
// Second member
CareTeamComponent member2 = TransformerTestUtilsV2.findCareTeamBySequence(2, eob.getCareTeam());
CareTeamComponent compare2 = TransformerTestUtilsV2.createNpiCareTeamMember(2, "3333333333", "http://hl7.org/fhir/us/carin-bb/CodeSystem/C4BBClaimCareTeamRole", "operating", "Operating");
assertTrue(compare2.equalsDeep(member2));
// Third member
CareTeamComponent member3 = TransformerTestUtilsV2.findCareTeamBySequence(3, eob.getCareTeam());
CareTeamComponent compare3 = TransformerTestUtilsV2.createNpiCareTeamMember(3, "4444", "http://hl7.org/fhir/us/carin-bb/CodeSystem/C4BBClaimCareTeamRole", "otheroperating", "Other Operating");
assertTrue(compare3.equalsDeep(member3));
// Fourth member
CareTeamComponent member4 = TransformerTestUtilsV2.findCareTeamBySequence(4, eob.getCareTeam());
CareTeamComponent compare4 = TransformerTestUtilsV2.createNpiCareTeamMember(4, "345345345", "http://hl7.org/fhir/us/carin-bb/CodeSystem/C4BBClaimCareTeamRole", "performing", "Performing provider");
assertTrue(compare4.equalsDeep(member4));
}
use of org.hl7.fhir.r4.model.ExplanationOfBenefit.CareTeamComponent in project beneficiary-fhir-data by CMSgov.
the class CarrierClaimTransformerV2Test method shouldHaveCareTeamMembers.
@Test
public void shouldHaveCareTeamMembers() {
// First member
CareTeamComponent member1 = TransformerTestUtilsV2.findCareTeamBySequence(1, eob.getCareTeam());
CareTeamComponent compare1 = TransformerTestUtilsV2.createNpiCareTeamMember(1, "8765676", "http://hl7.org/fhir/us/carin-bb/CodeSystem/C4BBClaimCareTeamRole", "referring", "Referring");
assertTrue(compare1.equalsDeep(member1));
// Second member
CareTeamComponent member2 = TransformerTestUtilsV2.findCareTeamBySequence(2, eob.getCareTeam());
CareTeamComponent compare2 = TransformerTestUtilsV2.createNpiCareTeamMember(2, "K25852", "http://hl7.org/fhir/us/carin-bb/CodeSystem/C4BBClaimCareTeamRole", "referring", "Referring");
assertTrue(compare2.equalsDeep(member2));
// // Third member
CareTeamComponent member3 = TransformerTestUtilsV2.findCareTeamBySequence(3, eob.getCareTeam());
CareTeamComponent compare3 = TransformerTestUtilsV2.createNpiCareTeamMember(3, "1923124", "http://hl7.org/fhir/us/carin-bb/CodeSystem/C4BBClaimCareTeamRole", "performing", "Performing provider");
compare3.setResponsible(true);
compare3.setQualification(new CodeableConcept().setCoding(Arrays.asList(new Coding().setSystem("https://bluebutton.cms.gov/resources/variables/prvdr_spclty").setDisplay("Optometrist").setCode("41"))));
compare3.addExtension("https://bluebutton.cms.gov/resources/variables/carr_line_prvdr_type_cd", new Coding().setSystem("https://bluebutton.cms.gov/resources/variables/carr_line_prvdr_type_cd").setCode("0"));
compare3.addExtension("https://bluebutton.cms.gov/resources/variables/prtcptng_ind_cd", new Coding().setSystem("https://bluebutton.cms.gov/resources/variables/prtcptng_ind_cd").setCode("1").setDisplay("Participating"));
assertTrue(compare3.equalsDeep(member3));
// Fourth member
CareTeamComponent member4 = TransformerTestUtilsV2.findCareTeamBySequence(4, eob.getCareTeam());
CareTeamComponent compare4 = TransformerTestUtilsV2.createNpiCareTeamMember(4, "1497758544", "http://terminology.hl7.org/CodeSystem/claimcareteamrole", "primary", "Primary provider");
compare4.getProvider().setDisplay("CUMBERLAND COUNTY HOSPITAL SYSTEM, INC");
assertTrue(compare4.equalsDeep(member4));
}
use of org.hl7.fhir.r4.model.ExplanationOfBenefit.CareTeamComponent in project beneficiary-fhir-data by CMSgov.
the class HospiceClaimTransformerV2Test method shouldHaveCareTeamMembers.
@Test
public void shouldHaveCareTeamMembers() {
// First member
CareTeamComponent member1 = TransformerTestUtilsV2.findCareTeamBySequence(1, eob.getCareTeam());
CareTeamComponent compare1 = TransformerTestUtilsV2.createNpiCareTeamMember(1, "8888888888", "http://hl7.org/fhir/us/carin-bb/CodeSystem/C4BBClaimCareTeamRole", "attending", "Attending");
assertTrue(compare1.equalsDeep(member1));
// Second member
CareTeamComponent member2 = TransformerTestUtilsV2.findCareTeamBySequence(2, eob.getCareTeam());
CareTeamComponent compare2 = new CareTeamComponent().setSequence(2).setProvider(new Reference().setIdentifier(TransformerTestUtilsV2.createIdentifier(null, "0", "http://terminology.hl7.org/CodeSystem/v2-0203", "UPIN", "Medicare/CMS (formerly HCFA)'s Universal Physician Identification numbers"))).setRole(new CodeableConcept().setCoding(Arrays.asList(new Coding("http://hl7.org/fhir/us/carin-bb/CodeSystem/C4BBClaimCareTeamRole", "performing", "Performing provider"))));
assertTrue(compare2.equalsDeep(member2));
// // Third member
CareTeamComponent member3 = TransformerTestUtilsV2.findCareTeamBySequence(3, eob.getCareTeam());
CareTeamComponent compare3 = new CareTeamComponent().setSequence(3).setProvider(new Reference().setIdentifier(TransformerTestUtilsV2.createIdentifier(null, "345345345", "http://hl7.org/fhir/us/carin-bb/CodeSystem/C4BBIdentifierType", "npi", "National Provider Identifier"))).setRole(new CodeableConcept().setCoding(Arrays.asList(new Coding("http://hl7.org/fhir/us/carin-bb/CodeSystem/C4BBClaimCareTeamRole", "performing", "Performing provider"))));
assertTrue(compare3.equalsDeep(member3));
}
use of org.hl7.fhir.r4.model.ExplanationOfBenefit.CareTeamComponent in project beneficiary-fhir-data by CMSgov.
the class InpatientClaimTransformerV2Test method shouldHaveCareTeamMembers.
/**
* Testing all of these in one test, just because there isn't a distinct identifier really for
* each
*/
@Test
public void shouldHaveCareTeamMembers() {
// First member
CareTeamComponent member1 = TransformerTestUtilsV2.findCareTeamBySequence(1, eob.getCareTeam());
CareTeamComponent compare1 = TransformerTestUtilsV2.createNpiCareTeamMember(1, "161999999", "http://hl7.org/fhir/us/carin-bb/CodeSystem/C4BBClaimCareTeamRole", "attending", "Attending");
assertTrue(compare1.equalsDeep(member1));
// Second member
CareTeamComponent member2 = TransformerTestUtilsV2.findCareTeamBySequence(2, eob.getCareTeam());
CareTeamComponent compare2 = TransformerTestUtilsV2.createNpiCareTeamMember(2, "3333444555", "http://hl7.org/fhir/us/carin-bb/CodeSystem/C4BBClaimCareTeamRole", "operating", "Operating");
assertTrue(compare2.equalsDeep(member2));
// Third member
CareTeamComponent member3 = TransformerTestUtilsV2.findCareTeamBySequence(3, eob.getCareTeam());
CareTeamComponent compare3 = TransformerTestUtilsV2.createNpiCareTeamMember(3, "161943433", "http://hl7.org/fhir/us/carin-bb/CodeSystem/C4BBClaimCareTeamRole", "otheroperating", "Other Operating");
assertTrue(compare3.equalsDeep(member3));
// Fourth member
CareTeamComponent member4 = TransformerTestUtilsV2.findCareTeamBySequence(4, eob.getCareTeam());
CareTeamComponent compare4 = TransformerTestUtilsV2.createNpiCareTeamMember(4, "345345345", "http://hl7.org/fhir/us/carin-bb/CodeSystem/C4BBClaimCareTeamRole", "performing", "Performing provider");
assertTrue(compare4.equalsDeep(member4));
}
Aggregations