Skip to content

Commit

Permalink
Head and Neck - Table 7 updates
Browse files Browse the repository at this point in the history
  • Loading branch information
bekeles committed Dec 27, 2024
1 parent e8f170d commit 7961d4e
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 3 deletions.
25 changes: 22 additions & 3 deletions src/main/java/com/imsweb/mph/MphConstants.java
Original file line number Diff line number Diff line change
Expand Up @@ -1189,13 +1189,23 @@ private MphConstants() {
thisTableSubTypes = new HashMap<>();
thisTableSubTypes.put("9310/3", "9310/3");
thisTableSubTypes.put("9330/3", "9330/3");
thisTableSubTypes.put("9222/3", "9222/3");
thisTableSubTypes.put("9220/3", "9220/3");
thisTableSubTypes.put("9240/3", "9220/3");
thisTableSubTypes.put("9180/3", "9181/3,9187/3,9192/3,9193/3");
thisTableSubTypes.put("9221/3", "9221/3");
thisTableSubTypes.put("9242/3", "9242/3");
thisTableSubTypes.put("9243/3", "9243/3");
thisTableSubTypes.put("9180/3", "9181/3,9186/3,9194/3,9187/3,9192/3,9193/3,9184/3,9185/3,9183/3");
thisTableSubTypes.put("9181/3", "9181/3");
thisTableSubTypes.put("9186/3", "9186/3");
thisTableSubTypes.put("9194/3", "9194/3");
thisTableSubTypes.put("9187/3", "9187/3");
thisTableSubTypes.put("9192/3", "9192/3");
thisTableSubTypes.put("9193/3", "9193/3");
thisTableSubTypes.put("9184/3", "9184/3");
thisTableSubTypes.put("9185/3", "9185/3");
thisTableSubTypes.put("9183/3", "9183/3");
thisTableSubTypes.put("8900/3", "8900/3");
for (String site : HEAD_AND_NECK_2018_TABLE7_SITES)
content.put(site, thisTableSubTypes);

Expand Down Expand Up @@ -1391,16 +1401,25 @@ private MphConstants() {
thisTableRows.put("9341", "9341"); // Clear cell odontogenic carcinoma 9341*
thisTableRows.put("9302", "9302"); // Ghost cell odontogenic carcinoma 9302*
thisTableRows.put("8980/3", "8980/3"); // Odontogenic carcinosarcoma 8980/3
//thisTableRows.put("9310/3", "8980/3"); // Odontogenic carcinosarcoma 8980/3
thisTableRows.put("9330/3", "8980/3"); // Odontogenic carcinosarcoma 8980/3
thisTableRows.put("9330/3", "8980/3,8800/3"); // Odontogenic carcinosarcoma 8980/3 and Sarcoma NOS 8800/3
thisTableRows.put("8800/3", "8800/3"); // Sarcoma NOS 8800/3
thisTableRows.put("9222/3", "8800/3"); // Sarcoma NOS 8800/3
thisTableRows.put("9220/3", "8800/3"); // Sarcoma NOS 8800/3
thisTableRows.put("9240/3", "8800/3"); // Sarcoma NOS 8800/3
thisTableRows.put("9221/3", "8800/3"); // Sarcoma NOS 8800/3
thisTableRows.put("9242/3", "8800/3"); // Sarcoma NOS 8800/3
thisTableRows.put("9243/3", "8800/3"); // Sarcoma NOS 8800/3
thisTableRows.put("9180/3", "8800/3"); // Sarcoma NOS 8800/3
thisTableRows.put("9181/3", "8800/3"); // Sarcoma NOS 8800/3
thisTableRows.put("9186/3", "8800/3"); // Sarcoma NOS 8800/3
thisTableRows.put("9194/3", "8800/3"); // Sarcoma NOS 8800/3
thisTableRows.put("9187/3", "8800/3"); // Sarcoma NOS 8800/3
thisTableRows.put("9192/3", "8800/3"); // Sarcoma NOS 8800/3
thisTableRows.put("9193/3", "8800/3"); // Sarcoma NOS 8800/3
thisTableRows.put("9184/3", "8800/3"); // Sarcoma NOS 8800/3
thisTableRows.put("9185/3", "8800/3"); // Sarcoma NOS 8800/3
thisTableRows.put("9183/3", "8800/3"); // Sarcoma NOS 8800/3
thisTableRows.put("8900/3", "8800/3"); // Sarcoma NOS 8800/3
for (String site : HEAD_AND_NECK_2018_TABLE7_SITES)
content.put(site, thisTableRows);

Expand Down
36 changes: 36 additions & 0 deletions src/test/java/com/imsweb/mph/Mph2018RuleTests.java
Original file line number Diff line number Diff line change
Expand Up @@ -1813,6 +1813,22 @@ public void test2018HeadAndNeck() {
Assert.assertEquals(MpResult.MULTIPLE_PRIMARIES, output.getResult());
Assert.assertEquals(ruleStepToTest, output.getStep());
Assert.assertEquals(ruleCountToTest, output.getAppliedRules().size());
//table 7
i1.setPrimarySite("C410");
i2.setPrimarySite("C410");
i1.setHistologyIcdO3("9192");
i2.setHistologyIcdO3("9193");
output = _utils.computePrimaries(i1, i2);
Assert.assertEquals(MphConstants.SOLID_TUMOR_2018_HEAD_AND_NECK, output.getGroupName());
Assert.assertEquals(MpResult.MULTIPLE_PRIMARIES, output.getResult());
Assert.assertEquals(ruleStepToTest, output.getStep());
Assert.assertEquals(ruleCountToTest, output.getAppliedRules().size());
//not applicable (indented)
i1.setHistologyIcdO3("9180");
i2.setHistologyIcdO3("9193");
output = _utils.computePrimaries(i1, i2);
Assert.assertEquals(MphConstants.SOLID_TUMOR_2018_HEAD_AND_NECK, output.getGroupName());
Assert.assertEquals(MpResult.SINGLE_PRIMARY, output.getResult());

// Rule M8 Abstract multiple primaries when separate, non-contiguous tumors are on different rows in the appropriate site table (Tables 1-9) in the Equivalent Terms and Definitions. Timing is irrelevant.
ruleStepToTest = "M8";
Expand Down Expand Up @@ -2376,6 +2392,26 @@ public void test2018HeadAndNeck() {
Assert.assertEquals(MpResult.SINGLE_PRIMARY, output.getResult());
Assert.assertEquals(ruleStepToTest, output.getStep());
Assert.assertEquals(ruleCountToTest, output.getAppliedRules().size());
//table 7
i1.setPrimarySite("C410");
i2.setPrimarySite("C410");
i1.setHistologyIcdO3("9330");
i2.setHistologyIcdO3("8800");
output = _utils.computePrimaries(i1, i2);
Assert.assertEquals(MpResult.SINGLE_PRIMARY, output.getResult());
Assert.assertEquals(ruleStepToTest, output.getStep());
Assert.assertEquals(ruleCountToTest, output.getAppliedRules().size());
i1.setHistologyIcdO3("9330");
i2.setHistologyIcdO3("8980");
output = _utils.computePrimaries(i1, i2);
Assert.assertEquals(MpResult.SINGLE_PRIMARY, output.getResult());
Assert.assertEquals(ruleStepToTest, output.getStep());
Assert.assertEquals(ruleCountToTest, output.getAppliedRules().size());
//Not same row
i1.setHistologyIcdO3("8800");
i2.setHistologyIcdO3("8980");
output = _utils.computePrimaries(i1, i2);
Assert.assertEquals(MpResult.MULTIPLE_PRIMARIES, output.getResult());

// Rule M13 Abstract a single primary when none of the previous rules apply.
//No case will reach here
Expand Down

0 comments on commit 7961d4e

Please sign in to comment.