If you look carefully at the published codelist for RPTESTCD, you will see that the terms all are about “things that happened” in relationship to reproduction, and not organs or body parts or specimens coming from the human body. So I would be a bit reluctant to add “mucus” as an extended value. But it might indeed be that in your specific case, some property of “mucus” is an important indicator.
The problem with --TESTCD in CDISC-SDTM is that it has a pretty different meaning dependent on the domain. For LB, LBTESTCD represents the analyte, in VS, VSTESTCD represents a physical property, in QS, QSTESTCD means a question on a questionnaire …
All this is due to the fact that SDTM is based on 2-D tables, probably because “if you only know XPT format, everything is a table” …