JMP Clinical wurde vor 11 Jahren speziell für die Analyse und Überprüfung laufender klinischer Studien veröffentlicht, die sich auf standardisierte und strukturierte Daten konzentrieren. Die Absicht bestand darin, dass ein Prüfer in regelmäßigen Abständen (jede Woche oder jeden Monat) Daten zur Überprüfung erhält, um anhand vorprogrammierter Berichte nach Sicherheits- und/oder Wirksamkeitssignalen zu suchen, die es dem Prüfer ermöglichen, sich selbst zu bedienen und tiefer in die Daten einzutauchen -Nachfrage. Die Hoffnung bestand darin, den Überprüfungsprozess zu beschleunigen und Anomalien aufzudecken, die andernfalls bei der Betrachtung statischer Tabellen, Auflistungen und Abbildungen übersehen würden.
Darüber hinaus bestand ein Ziel der Software darin, die Belastung der Programmierteams zu verringern, die die angeforderten Daten und standardisierten Berichte für die Prüfer erstellen. Dies erforderte viel Zeit, um Programme auszuführen oder Programme/Skripte/Makros regelmäßig zu bearbeiten, um den Anforderungen der Prüfer gerecht zu werden. Programmier- und Biostatistikgruppen möchten sich in der Regel auf Daten und Berichte konzentrieren, die für die jeweilige Studie einzigartig sind, statt auf die übliche Tabelle oder Grafik, die von Studie zu Studie ziemlich konsistent ist, sodass sie den studienspezifischen Anomalien, die darin bestehen, fundierter und ungestörter Aufmerksamkeit schenken können erfordern mehr statistische oder algorithmische Kenntnisse.
JMP Clinical hat diese Ziele größtenteils erreicht, es sei denn, es handelt sich um Organisationen, die über viele Studien verfügen, die überwacht werden müssen, und/oder über häufige Datenaktualisierungen verfügen. Dies stellt eine neue Belastung für die Datenmanagement- und Biostatistikteams dar, die Studien innerhalb von JMP Clinical zu aktualisieren, oder belastet die Gutachter, die den Prozess nicht so gut beherrschten oder nicht die Zeit hatten. Interessant war auch die Möglichkeit, einige der Berichte innerhalb von JMP Clinical zu ändern und/oder dieselbe Überprüfungsvorlage nach Zeitplan auszuführen. Der Bedarf an Automatisierung und Erweiterung der Fähigkeiten von JMP Clinical wurde zu einer häufigen Anfrage.
Geben Sie die APIs von JMP Clinical ein. Rund um JMP Clinical 6 haben wir das Framework und die Infrastruktur eingeführt, um den API-basierten Zugriff auf allgemeine Funktionen/Prozesse programmgesteuert zu ermöglichen. In JMP Clinical 7 wurden die APIs veröffentlicht und mithilfe der JMP Scripting Language (JSL) verfügbar gemacht. In Version 8 (der neuesten Version) wurden weitere Funktionen veröffentlicht. Dieser Beitrag geht nicht auf die Details der Entwicklung der APIs ein. Stattdessen liegt der Schwerpunkt auf deren praktischer Nutzung, damit Sie sie nutzen können.
Ich werde eine Reihe von Beiträgen zum Aufrufen und Verwenden der APIs veröffentlichen. Wir beginnen einfach mit der Einführung in die grundlegende Syntax und deren Verwendung. Dann gehen wir mit der Verwendung von JSL zu anspruchsvolleren Anwendungen über. Und schließlich kombinieren wir die beiden Kategorien von APIs, die in einigen JSLs aufgerufen werden.
Wer mit den Begriffen „Studie“, „Rezension“, „Bericht“ und „Review-Vorlage“ im Kontext von JMP Clinical nicht vertraut ist, kann sich über diesen Link informieren. Auch diejenigen, die mit JSL nicht vertraut sind, sollten diesen Link lesen und mehr darüber erfahren. Um die Verwendung der APIs zu verstehen, sind Kenntnisse in beiden Bereichen erforderlich.
Beginnen wir in diesem Beitrag mit den beiden Hauptkategorien und den Möglichkeiten. Die beiden Hauptkategorien sind: Funktionen für das Studienmanagement (JMPClinicalStudyManagerAPI) und Funktionen für die Überprüfung (JMPClinicalReviewAPI). Die Idee besteht darin, zu reproduzieren, was innerhalb der Benutzeroberfläche getan werden kann (hauptsächlich die Schaltflächenklicks), wenn keine Entscheidung des Benutzers erforderlich ist (z. B. das Aktualisieren der Metadaten für Studien mit neuen Daten oder das Öffnen einer Überprüfungsvorlage und deren Ausführung für eine bestimmte Studie). Nachfolgend finden Sie einige Bilder, die Schaltflächen hervorheben, die sich auf den Abschnitt „Studienverwaltung“ und den Abschnitt „Überprüfung“ beziehen.
Study Management Functions that Relate to JMPClinicalStudyMangerAPIStudy Management Functions that Relate to JMPClinicalStudyMangerAPIStudy Management Functions that Relate to JMPClinicalStudyMangerAPIStudy Management Functions that Relate to JMPClinicalStudyMangerAPIStudienverwaltungsfunktionen, die sich auf JMPClinicalStudyMangerAPI beziehen
Review/Review Builder Functions that Related to JMPClinicalReviewAPIReview/Review Builder Functions that Related to JMPClinicalReviewAPIReview/Review Builder Functions that Related to JMPClinicalReviewAPIReview/Review Builder Functions that Related to JMPClinicalReviewAPIReview/Review Builder-Funktionen, die sich auf JMPClinicalReviewAPI beziehen
Die API soll Routineaufgaben übernehmen und automatisieren, wie z. B. das Aktualisieren von Studien mit neuen Metadaten oder das Hinzufügen/Entfernen von Inhalten zu einem Bericht innerhalb einer Review-Vorlage. Hier ist ein Link für die JMPClinicalStudyManagerAPI- Funktionen und ein weiterer Link für die JMPClinicalReviewAPI- Funktionen als Referenz.
Was kann diese JMPClinicalStudyMangerAPI-API also für uns tun? Es stellt uns zwei Gruppen von Funktionen zur Verfügung: Get-Funktionen (Funktionen, die Informationen über die Studien abrufen) und Manipulierungsfunktionen (Funktionen, die Studien hinzufügen, entfernen oder aktualisieren). Hier ist eine Tabelle darüber, was mit der grundlegenden Syntax zum Aufrufen dieser Funktion möglich ist. Der Doppelpunkt (:) trennt den API-Aufruf und den Funktionsaufruf. Einige der Funktionen verfügen über Eingaben und/oder Rückgaben. Einzelheiten dazu, was als Eingabe und Rückgabe erwartet wird, finden Sie unter den obigen Links.
|
Studienmanagement-API
|
|
Informationsfunktionen abrufen
|
Studienfunktionen manipulieren
|
|
Liste der Studiennamen abrufen:
JMPClinicalStudyManagerAPI:getStudyList
|
Studie hinzufügen:
JMPClinicalStudyManagerAPI:addStudy
|
|
SDTM-Ordnerpfad abrufen:
JMPClinicalStudyManagerAPI:getSDTMFolder
|
Metadaten der Studie aktualisieren:
JMPClinicalStudyManagerAPI:refreshStudies
|
|
ADaM-Ordnerpfad abrufen:
JMPClinicalStudyManagerAPI:getADAMFolder
|
Studie löschen:
JMPClinicalStudyManagerAPI:deleteStudies
|
|
Get Date Study wurde hinzugefügt:
JMPClinicalStudyManagerAPI:getInitialDate
|
Studie mit einem neuen Snapshot aktualisieren:
JMPClinicalStudyManagerAPI:updateSnapshot
|
|
Get Date Study wurde zuletzt aktualisiert:
JMPClinicalStudyManagerAPI:getLastUpdatedDate
|
Studiendatenordner ändern:
JMPClinicalStudyManagerAPI:changeFolders
|
|
Status „Snapshot aktiviert“ abrufen:
JMPClinicalStudyManagerAPI:getEnableSnapshot
|
Patientenprofildaten vorab berechnen:
JMPClinicalStudyManagerAPI:precomputeProfileData
|
|
Snapshot-Nummer abrufen:
JMPClinicalStudyManagerAPI:getSnapshotNumber
|
|
|
Liste der erkannten Domains abrufen:
JMPClinicalStudyManagerAPI:getDomainList
|
|
|
Dateigröße auf der Festplatte ermitteln:
JMPClinicalStudyManagerAPI:getSizeOnDisk
|
|
|
Rufen Sie die Benutzer-ID des Windows-Betriebssystems ab, die die Studie erstellt/hinzugefügt hat:
JMPClinicalStudyManagerAPI:getCreatedBy
|
|
|
Rufen Sie die Benutzer-ID des Windows-Betriebssystems ab, der die Studie zuletzt aktualisiert hat:
JMPClinicalStudyManagerAPI:getLastUpdatedBy
|
|
Schauen wir uns nun die zweite Kategorie an, die Überprüfungsfunktionen. Dieser verfügt auch über eine Reihe von Abruf- und Manipulationsfunktionen, jedoch für Rezensionen und Berichte.
|
Überprüfen Sie die API
|
|
Informationsfunktionen abrufen
|
Bearbeiten Sie Berichts-/Überprüfungsfunktionen
|
|
Holen Sie sich eine Referenz zum Review Builder:
JMPClinicalReviewAPI:getReviewBuilder
|
Review Builder schließen:
JMPClinicalReviewAPI:closeReviewBuilder
|
|
Rufen Sie die ID und den Titel des Review-Betrachters/Erstellers ab:
JMPClinicalReviewAPI:getReviewViewerIDsAndTitles
|
Bewertungsvorlage öffnen:
JMPClinicalReviewAPI:openReviewTemplate
|
|
Rufen Sie einen Verweis auf den Review Viewer ab:
JMPClinicalReviewAPI:getReviewViewer
|
Fügen Sie einen Bericht zum Review Builder hinzu:
JMPClinicalReviewAPI:addReport
|
|
Inhaltsverzeichnis des Review Viewer/Builders abrufen:
JMPClinicalReviewAPI:getReviewTableOfContents
|
Entfernen Sie den Review Builder für Berichtsformulare nach Titel:
JMPClinicalReviewAPI:removeReportByReportTitle
|
|
Rufen Sie eine Liste der Berichts-IDs ab:
JMPClinicalReviewAPI:getReportIDList
|
Führen Sie den Bericht im Review Builder nach Titel aus:
JMPClinicalReviewAPI:runReportByReportTitle
|
|
Rufen Sie eine Liste der Berichtstitel ab:
JMPClinicalReviewAPI:getReportTitleList
|
Führen Sie alle Berichte im Review Builder aus:
JMPClinicalReviewAPI:manAllReports
|
|
Rufen Sie einen Verweis auf einen Bericht nach ID ab:
JMPClinicalReviewAPI:getReportByID
|
Inhalte des Review Builders als Bewertung speichern:
JMPClinicalReviewAPI:saveReview
|
|
Erhalten Sie einen Verweis auf einen Bericht nach Titel:
JMPClinicalReviewAPI:getReportByTitle
|
Öffnen Sie eine Rezension im Review Viewer:
JMPClinicalReviewAPI:openReview
|
|
Berichtsdetails nach Titel abrufen:
JMPClinicalReviewAPI:getReportDetailsByTitle
|
Abschnitt in einen Bericht einfügen:
JMPClinicalReviewAPI:insertSectionIntoReportByTitleAndSectionName
|
|
Erhalten Sie einen Verweis auf die Berichtsergebnisse:
JMPClinicalReviewAPI:getReportResultsByTitle
|
Abschnitt aus einem Bericht entfernen:
JMPClinicalReviewAPI:removeSectionFromReportByTitleAndSectionName
|
|
Erhalten Sie einen Verweis auf den Berichtsabschnitt:
JMPClinicalReviewAPI:getReportSectionByTitleAndSectionName
|
Zum Ende des Berichtsabschnitts hinzufügen:
JMPClinicalReviewAPI:appendDisplayObjectToReportSectionByTitleAndSectionName
|
|
Liste der im Bericht verwendeten Datentabellen abrufen:
JMPClinicalReviewAPI:getDataTablesForSectionByTitleAndSectionName
|
Am Anfang des Berichtsabschnitts hinzufügen:
JMPClinicalReviewAPI:prependDisplayObjectToReportSectionByTitleAndSectionName
|
Jetzt haben wir die verschiedenen Funktionen und ihre Möglichkeiten aufgelistet. Jetzt ist es an der Zeit, die grundlegende Syntax ihrer Verwendung zu zeigen. Die Grundform ist diese:
JMPClinical<CATEGORY>API:<FUNCTION> ({Argument(e)}, {Namespace}, CompleteListenerFunction());</FUNCTION></CATEGORY>
Ich habe den grundlegenden Aufruf der Study Management-bezogenen API-Funktionen bereits oben vorgestellt, als ich auf JMPClinicalStudyManagerAPI verwiesen habe. Wenn ich also die Metadaten der registrierten Studien aktualisieren möchte, sieht das etwa so aus:
JMPClinicalStudyManager:refreshStudies ({studyList},{},{});
Wir werden dies genauer untersuchen und in den nächsten Beiträgen über häufige Verwendungszwecke sprechen. Zunächst wollte ich vorstellen, was verfügbar ist und wie man es allgemein in einem JSL-Skript aufruft. Im nächsten Beitrag geht es um ein Beispiel der Study Management API, wir sprechen mehr über Namespace- und CompleteListener-Teile des API-Aufrufs und beginnen, ihn in JSL zu verpacken und JSL darin zu verwenden.
Bis zum nächsten Beitrag, aufgepasst!
@BaoyueLi,
Sorry for the late reply. I did not see this comment this post. In JMP Clinical 18 (and 17) you can set the current study. Here is a link to the API page from the user guide:
https://www.jmp.com/support/downloads/JMPC180_documentation/Content/JMPCUserGuide/AP_C_0013.htm
Here is a generic use of it:
JMPClinicalStudyManagerAPI:setCurrentStudy("study name")
Sets the current study to the one specified.
Arguments:
study - a string containing the name of the study to set as the current study, or Empty() to set the current study to
Returns:
If the current study was succesfully set, 1; otherwise 0.