API / Casemaster

Usage

import ch.oaat_otma.casemaster.Casemaster;
import ch.oaat_otma.casemaster.CasemasterResult;
import ch.oaat_otma.casemaster.Patient;
import ch.oaat_otma.casemaster.Session;

import ch.oaat_otma.Diagnosis;
import ch.oaat_otma.PatientCase;
import ch.oaat_otma.Service;

/**
 * 1. Create a Casemaster instance with a JSON file containing the
 * classification system assigning the Capitulum for a specific version of the
 * OAAT flat rates
 */
Casemaster cm = new Casemaster(new File("path/to/oaat-files/system_ambP_XX_cap_assignment.json"));

/**
 * 2. Create a sample patient with sessions and services.
 * The services are coded with LKAAT codes.
 * This sample case contains two sessions with diagnoses grouping into different Capitula.
 */
List<Session> sessions = new ArrayList<>();
Session s1 = new Session(1, LocalDate.now());
Session s2 = new Session(2, LocalDate.now());

sessions.add(s1);
sessions.add(s2);

/** Cap 08 */
s1.setDiagnosis(new Diagnosis("A54.4"));
/** Cap 06 */
s2.setDiagnosis(new Diagnosis("N80.5"));

s1.addService(new Service("AA.00.0010"));
s1.addService(new Service("AA.00.0020"));
/** C06.CB.0010 is a trigger code. */
s2.addService(new Service("C06.CB.0010"));

Patient p = new Patient();
p.setSessions(sessions);

/**
 * 3. Apply the Casemaster to the patient.
 */
CasemasterResult cr = cm.apply(p);

/**
 * 4. results contain errors and generated patient case / outpatient treatments
 * (ambulante Behandlungen)
 */
cr.errors.forEach(System.out::println);
cr.patientCases.forEach(System.out::println);

Casemaster Results

The CasemasterResult class encapsulates the result of a Casemaster operation. It contains two main fields:

  • patientCases: A list of generated patient cases / outpatient treatments which can then be used in the grouper and then the mapper.

  • errors: A list of errors that occurred during the Casemaster process.

The errors are of type CasemasterError which contains an error message the associated session and the type of error:

/**
 * The diagnosis is missing or invalid (Tessinercode or invalid ICD-10 code) and
 * the session is on a day where an ICD diagnosis is required (trigger position present).
 * This session will not be processed and should be corrected.
 */
MISSING_OR_INVALID_DIAGNOSIS,
/**
 * Paramedicine or transportation tariffs should not be in the same session as a
 * medical service (LKAAT).
 */
PARAMEDICINE_TRANSPORTATION_WITH_MEDICAL_SERVICE,
/**
 * The session contains a radiation planning service that can not be assigned to
 * a radiation therapy. This session will not be processed and should be corrected.
 */
UNASSIGNABLE_RADIATION_PLANNING