"""Legal and compliance pages for OmniBiMol.""" from __future__ import annotations import streamlit as st import streamlit.components.v1 as components LEGAL_PAGE_SLUGS = { "privacy-policy": "Privacy Policy", "terms": "Terms of Service", "disclaimer": "Disclaimer", "data-security": "Data Security", } def _section(title: str, body: str | list[str]) -> None: st.header(title) if isinstance(body, str): st.markdown(body) return for item in body: st.markdown(item) def render_privacy_policy() -> None: st.title("Privacy Policy") st.caption("Plain-language summary of how OmniBiMol handles data.") _section( "Introduction & Information We Collect", [ "OmniBiMol is designed for research and professional use. We may process the information you upload or enter to run analyses and display results.", "This can include genomic data, VCF files, protein sequences, project metadata, and basic user account or usage information where applicable.", ], ) _section( "How We Use Your Data", [ "We use your data to run analyses, return results, improve reliability, and support research workflows.", "We do not use your inputs for unrelated marketing purposes.", ], ) _section( "Data Sharing & Third Parties", [ "Some analyses rely on external scientific services, databases, or model providers. We only share the minimum data needed to perform the requested task.", "Where possible, we avoid sending unnecessary identifiers or sensitive context.", ], ) _section( "Data Storage & Security Measures", [ "We use access controls, restricted operational access, and security-focused engineering practices to protect data stored or processed by the platform.", "Security measures are designed to reduce the risk of unauthorized access, loss, or misuse, but no system can be guaranteed to be completely risk-free.", ], ) _section( "Your Rights", [ "You may request access, correction, or deletion of your data where applicable and where we are able to comply with the request.", "If you believe data was handled incorrectly, contact us using the details below.", ], ) _section( "Cookies & Tracking", [ "We may use limited cookies or similar technologies for session management, security, and product reliability.", "We do not intend to use intrusive tracking that is unrelated to operating the service.", ], ) _section( "Compliance with India’s DPDP Act 2023", [ "We aim to handle personal data in a manner consistent with applicable Indian privacy requirements, including the Digital Personal Data Protection Act, 2023.", "If our processing model changes, we will update this policy to reflect the current practice.", ], ) _section( "International Transfers", [ "If data is processed using services hosted outside India, it may be transferred internationally to complete the requested analysis or to support hosting and reliability.", "We try to keep such transfers limited to what is necessary for the service.", ], ) _section( "Contact for Privacy Concerns", [ "For questions, access requests, or deletion requests, contact the OmniBiMol team through the project or platform contact channel provided by your deployment.", ], ) def render_terms() -> None: st.title("Terms of Service") st.caption("Simple terms for using OmniBiMol responsibly.") _section( "Acceptance of Terms", [ "By accessing or using OmniBiMol, you agree to these terms and to use the platform responsibly.", ], ) _section( "User Accounts & Responsibilities", [ "You are responsible for the accuracy of the information you submit and for keeping any account credentials secure.", "Do not share access with unauthorized users.", ], ) _section( "License to Use the Platform", [ "We grant you a limited, non-exclusive, non-transferable right to use the platform for lawful research and professional purposes.", ], ) _section( "Prohibited Uses", [ "You may not reverse engineer, scrape, copy, resell, or misuse the platform or its outputs.", "You may not use the service in a way that violates law, security controls, or the rights of others.", ], ) _section( "Intellectual Property", [ "The platform, branding, software, and underlying materials remain the property of their respective owners unless stated otherwise.", ], ) _section( "User Data & Ownership", [ "You retain rights to the data you submit, subject to any rights needed to process that data and operate the service.", ], ) _section( "Payment Terms", [ "If paid plans are introduced, the applicable pricing, billing cycle, and refund terms will be shown at the time of purchase.", ], ) _section( "Termination", [ "We may suspend or terminate access if these terms are violated or if needed to protect users, systems, or data.", ], ) _section( "Limitation of Liability", [ "OmniBiMol is provided as a research and professional tool. To the maximum extent permitted by law, we are not liable for losses arising from reliance on the platform outputs.", ], ) _section( "Governing Law", [ "These terms are intended to be governed by the laws applicable in Madhya Pradesh, India, unless a different rule is required by law for a specific deployment.", ], ) def render_disclaimer() -> None: st.title("Disclaimer") st.caption("Important limits on how OmniBiMol results should be used.") _section( "Not Medical Advice", [ "OmniBiMol is intended for research and informational use only. It is not medical advice, diagnosis, or treatment guidance.", ], ) _section( "No Doctor-Patient Relationship", [ "Using the platform does not create a doctor-patient relationship or any clinical care relationship.", ], ) _section( "Accuracy of Results", [ "Computational predictions, rankings, and summaries are probabilistic and may be incomplete or wrong.", "Results should always be reviewed by qualified experts before being used in any downstream decision.", ], ) _section( "User Responsibility", [ "You are responsible for verifying results with appropriate laboratory, clinical, or regulatory expertise.", ], ) _section( "No Medical Use", [ "The platform must not be used as the sole basis for patient management, treatment, or emergency care.", ], ) st.markdown( "**This platform is intended for research and professional use by qualified scientists and clinicians.**" ) def render_data_security() -> None: st.title("Data Security") st.caption("How OmniBiMol approaches protection of research data.") _section( "Encryption and Access Control", [ "We use access controls and security-focused operational practices to limit who can reach sensitive data and application systems.", "Encryption should be used in transit and at rest wherever the deployment environment supports it.", ], ) _section( "Genomic Data Protection", [ "Genomic and variant data should be treated as sensitive research information and handled with strict minimum-access principles.", "We aim to keep processing limited to the task requested by the user.", ], ) _section( "DPDP Alignment", [ "Our security posture is designed to support handling of personal data in line with India’s DPDP Act 2023 and deployment-specific policy requirements.", ], ) _section( "Future Readiness", [ "We design the platform with controls that can support more formal programs over time, including ISO 27001-style governance and HIPAA-style operational discipline where relevant, without claiming certification unless it is explicitly obtained.", ], ) def render_footer() -> None: st.markdown("---") left, center, right = st.columns([1.3, 0.8, 1]) with left: st.image("icons/Omnibimol_banner.png", width=220) st.caption("© 2026 OmniBiMol. All rights reserved.") st.caption("Made for researchers, clinicians & biotech innovators.") with center: st.markdown( "[Privacy Policy](?page=privacy-policy) | " "[Terms of Service](?page=terms) | " "[Disclaimer](?page=disclaimer) | " "[Data Security](?page=data-security)" ) with right: st.markdown( """

🔬 Support OmniBiMol

Free for science. Help us keep it running.

""", unsafe_allow_html=True, ) components.html( """
""", height=350, scrolling=True, )